<!DOCTYPE HTML>
<html>
<head>
<title>FileExist() | AutoHotkey</title>
<meta name="description" content="The FileExist function checks for the existence of a file or folder and returns its attributes." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>FileExist(FilePattern)</h1>

<p>检查文件或目录是否存在并返回它的属性.</p>

<pre class="Syntax">AttributeString := <span class="func">FileExist</span>(FilePattern)</pre>
<h2>参数</h2>
<dl>

  <dt>FilePattern</dt>
  <dd><p>要检查的路径, 文件名或文件模式(文件模式指类似 "*.txt" 这样的 Dos 表示法). <em>FilePattern</em> 如果未指定完整路径, 则假定在 <a href="../Variables.htm#WorkingDir">%A_WorkingDir%</a> 中.</p></dd>

</dl>

<h2>返回值</h2>
<p>函数返回找到第一个符合条件的文件或目录的属性字符串("RASHNDOCT" 中的一个或多个字母):</p>
<ul>
    <li>R = READONLY(只读)</li>
    <li>A = ARCHIVE(存档)</li>
    <li>S = SYSTEM(系统)</li>
    <li>H = HIDDEN(隐藏)</li>
    <li>N = NORMAL(普通)</li>
    <li>D = DIRECTORY(目录)</li>
    <li>O = OFFLINE(离线)</li>
    <li>C = COMPRESSED(压缩)</li>
    <li>T = TEMPORARY(临时)</li>
    <li>X = NONE(无属性)</li>
</ul>
<p>如果文件没有任何属性(罕见), 则返回 "X". 如果文件不存在则返回空字符串.</p>

<h2>备注</h2>
<p>本函数相当于 <a href="IfExist.htm">IfExist</a> 和 <a href="FileGetAttrib.htm">FileGetAttrib</a> 的组合.</p>
<p>由于空字符串相当于 &quot;false&quot;, 函数的返回值总可以用于直接作为逻辑判断. 例如, 语句 <code>if FileExist(&quot;C:\My File.txt&quot;)</code> 如果文件存在则返回真,否则为假. 类似的, 语句 <code>if InStr(FileExist(&quot;C:\My Folder&quot;), &quot;D&quot;)</code> 当路径存在 <em>并且</em> 为目录时返回真.</p>
<p>由于 <em>FilePattern</em> 可能包含通配符, 因此 FileExist 可能不适用于验证要与另一个函数或程序一起使用的文件路径. 例如, 即使 "*.txt" 不是有效的文件名, <code>FileExist("*.txt")</code> 也有可能会返回属性. 在这种情况下, <a href="FileGetAttrib.htm">FileGetAttrib</a> 是首选.</p>

<h2>相关</h2>
<p><a href="IfExist.htm">IfExist</a>, <a href="FileGetAttrib.htm">FileGetAttrib</a>, <a href="Block.htm">Blocks</a>, <a href="Else.htm">Else</a>, <a href="LoopFile.htm">File-loops (文件循环)</a></p>
<h2>示例</h2>
<pre class="NoIndent">if FileExist("D:\")
    MsgBox, 驱动器存在.
if FileExist("D:\Docs\*.txt")
    MsgBox, 至少有一个 .txt 文件存在.
if !FileExist("C:\Temp\FlagFile.txt")
    MsgBox, 目标文件不存在.</pre>

<pre class="NoIndent"><em>; 下面的例子展示如何检查文件的指定属性:</em>
if InStr(FileExist("C:\My File.txt"), "H")
    MsgBox 文件是隐藏的.</pre>

</body>
</html>